// node中内置的工具函数

// 1. promisify 将带有回调函数的方法进行promise化

// const { promisify } = require("util");

// 自己封装一个promise化的函数
function promisify(fn) {
  return  (...args) => {
    return new Promise((resolve, reject) => {
      args.push((err, ...res) => {
        if (err) {
          reject(err);
          return;
        }
        resolve(...res);
      });
      fn(...args);
    });
  };
}

// function fn(a, cb) {
//   console.log(a);
//   // cb && cb(1, 2);
// }

const stat = promisify(require('fs').stat);
// console.log(vvv());
stat(".").then((stats) => {
  console.log(stats);
}).catch(err=>{
  console.log(err);
});
